from UIAutoTest.shop_test.pom.BasePage import BasePage
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
import time


# 登录模块
class LoginPage(BasePage):
    # 类的实例变量  元素定位
    username = (By.NAME, 'accounts')
    pwd = (By.NAME, 'pwd')
    btn = (By.XPATH, '//div[@class="am-tabs-bd"]/div[1]/form/div[3]/button')

    def doLogin(self, name, password):
        # 小插曲：在方法中，如果想要引入实例变量的话，必须用self对象调用实例变量
        self.send_keys(self.username, name)
        self.send_keys(self.pwd, password)
        self.click(self.btn)
        # 定位登录提示信息
        toast_element = WebDriverWait(self.driver, 10).until(
            lambda x: x.find_element_by_xpath('//*[@id="common-prompt"]/div/p'))
        # 预期登录提示信息
        login_ok_msg = '登录成功'
        # 断言  如果登录提示信息不等于login_ok_msg  就是登录失败
        assert toast_element.text == login_ok_msg, '失败'
